/**
 * 1.调用 fs 模块, 来操作文件
 */
const fs = require('fs');
// import fsImport from 'fs';
/**
 * 打印顺序
 * Map(0) {}
 * 文件读取成功
 * object
 */

let str = '';
let map = new Map();

/**
 * 猜测 fs.readFile 是异步方法!!!, 会放在消息队列中进行排队
 * 而且fs.readFile方法是一个单线程的!!!
 *
 * 疑问, 为什么不能 将fs.writeFile 提到 fs.readFile的外面 ?
 */
fs.readFile('./files/score.txt', (err, dataStr) => {
  if (!err) {
    console.info('文件读取成功')
    console.log(typeof dataStr) // object
    // 使用正则表达式空格进行切割, 空格可以是多个空格或单个空格
    let split = dataStr.toString().trim().split(/\s+/);
    // 这种切分方式, 遇到多个空格无法处理
    // let split = dataStr.toString().trim().split(' ');
    split.forEach((value, index) => {
      let field = value.split('=');
      map.set(field[0], field[1])
    })
    map.forEach((value, key) => {
      console.log(`${key}: ${value}`);
      str += `${key}: ${value}\n`
    })

    fs.writeFile('./files/ok.txt', str.substr(0, str.length - 1), (err) => {
      if (err) {
        console.log(err)
        return
      }
      console.log('写入文件成功!')
    });
  } else {
    console.log(err)
    console.log('文件读取失败!')
  }
})


/*while (map.size === 0) {
  if (map.size > 0) {
    for (let [key, val] of map.entries()) {
      console.log(`${key}: ${val}`)
    }
    break;
  }
}*/


